iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
Odoo

30天就算 0 基礎,也能使用 GenAI 創造簡單的 Odoo 模組應用系列 第 22

【Day22】Odoo 電商產品模型,配合 Form View 來創建產品資料

  • 分享至 

  • xImage
  •  

簡單的 Odoo 產品模型,配合 Form View 來顯示產品的創建。這個例子包括一個基本的產品模型,包含產品名稱、價格和庫存數量,並使用一個表單視圖來讓用戶創建和編輯產品。

定義產品模型

在 Python 中定義一個簡單的產品模型。

from odoo import models, fields

class Product(models.Model):
    _name = 'my.product'
    _description = 'Simple Product'

    name = fields.Char(string='Product Name', required=True)
    price = fields.Float(string='Price', required=True)
    stock_quantity = fields.Integer(string='Stock Quantity', default=0)

  • name: 產品名稱,必填。
  • price: 產品價格,必填。
  • stock_quantity: 產品庫存數量,默認為 0。

定義 Form View

接下來,我們在 XML 中定義 Form View,讓用戶可以在後台創建和編輯產品。

<odoo>
    <!-- 定義產品表單視圖 -->
    <record id="view_product_form" model="ir.ui.view">
        <field name="name">product.form</field>
        <field name="model">my.product</field>
        <field name="arch" type="xml">
            <form string="Product Form">
                <group>
                    <field name="name"/>
                    <field name="price"/>
                    <field name="stock_quantity"/>
                </group>
            </form>
        </field>
    </record>
    ...
</odoo>

<record> 標籤

<record id="view_product_form" model="ir.ui.view">
  • record: 定義一個新記錄,這裡是一個視圖 (view) 記錄。
  • id: 給這個視圖一個唯一的 ID,這個 ID 可以用來在 Odoo 其他地方引用這個視圖。這裡定義的是 view_product_form。
  • model: 指定這個記錄將保存到 ir.ui.view 模型中,該模型是 Odoo 用來存儲所有視圖的地方。

<field> 標籤 - name

<field name="name">product.form</field>
  • field: 表示一個欄位值,在這裡為 ir.ui.view 模型的欄位填寫內容。
  • name: 這裡指定的是 name 欄位,代表視圖的名稱,便於識別。
  • product.form: 為這個視圖指定一個名稱為 product.form。

<field> 標籤 - model

<field name="model">my.product</field>
  • field: 表示 Odoo 會把這個視圖綁定到哪個模型。
  • name: model 欄位,表示這個視圖適用於哪個模型。
  • my.product: 這裡指定模型是 my.product,這是之前定義的自訂產品模型。

<field> 標籤 - arch

<field name="arch" type="xml">
  • arch: arch 代表架構 (architecture),用來定義這個視圖的內容。
  • type="xml": 表示這個欄位的內容是 XML 格式,Odoo 用 XML 來定義前端顯示的視圖。

<form> 標籤

<form string="Product Form">
  • form: 定義一個表單視圖 (Form View)。Form View 主要用於創建或編輯模型記錄。
  • string: 為這個表單提供一個標題,這裡標題是 "Product Form",用來顯示在表單的標題欄位。

<group> 標籤

<group>
  • group: 這個標籤用來把表單中的欄位分組排列。Odoo 的 Form View 中,group 通常用來控制欄位的佈局,使表單更整齊地排列。欄位通常會以兩列的方式顯示在 group 中。

<field> 標籤 - name

<field name="name"/>
  • field: 定義一個欄位,這裡的 field 用來在表單中顯示來自模型的數據。
  • name: 這裡指定要顯示的欄位名稱,name 是模型中的一個欄位,在此處表單中顯示為產品名稱。

<field> 標籤 - price

<field name="price"/>
  • field: 再次定義一個欄位,用來在表單中顯示來自模型的數據。
  • name: 這裡指定欄位 price,代表產品的價格欄位。

<field> 標籤 - stock_quantity

<field name="stock_quantity"/>
  • field: 定義產品的庫存數量欄位。
  • name: stock_quantity 欄位顯示產品的庫存數量。

小結:

這段 XML 定義了一個基本的 Form View,用於在 Odoo 後台中為 my.product 模型創建和編輯產品。該表單包含了三個欄位:

  • 產品名稱 (name)
  • 產品價格 (price)
  • 庫存數量 (stock_quantity)

每個欄位都會顯示在表單中,允許用戶進行編輯並提交到資料庫。


上一篇
【Day21】Odoo 電商權限設置範例:安全群組 (XML)、存取規則 (CSV)
下一篇
【Day23】使用 Odoo List View 管理電商產品:讓商品列表展示更直觀
系列文
30天就算 0 基礎,也能使用 GenAI 創造簡單的 Odoo 模組應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言